#include <stdio.h>
#include <locale.h>
#include "../list.h"

int main() {
    // 设置区域为中文UTF-8
    setlocale(LC_ALL, "zh_CN.UTF-8");
    printf("=== 极简测试程序 ===\n");
    
    // 创建列表
    List* list = ListNew();
    printf("创建列表成功，初始大小: %zu\n", list->size);
    printf("初始容量: %zu\n", list->capacity);
    
    // 测试添加单个元素
    int value = 42;
    printf("准备添加值: %d (地址: %p)\n", value, &value);
    ListAdd(list, &value);
    printf("添加后列表大小: %zu\n", list->size);
    
    // 尝试获取元素
    void* retrieved = ListGet(list, 0);
    printf("ListGet(0) 返回地址: %p\n", retrieved);
    if (retrieved != NULL) {
        printf("获取到的值: %d\n", *(int*)retrieved);
    } else {
        printf("获取元素失败！\n");
    }
    
    // 直接访问内部数据数组（用于调试）
    if (list->size > 0) {
        printf("直接访问list->data[0]: %p\n", list->data[0]);
        if (list->data[0] != NULL) {
            printf("直接访问获取的值: %d\n", *(int*)list->data[0]);
        }
    }
    
    // 清理
    ListFree(list);
    printf("\n测试完成！\n");
    return 0;
}